package main

import (
	"fmt"
	"time"
)

// 并发 的灵活运用，控制并发量，同时理解小型的生产消费模式
// channnel管道的并发是安全的，
var a = make(chan int, 5)

func test() {
	for {
		select {
		case <-a:
			time.Sleep(100 * time.Millisecond)

			fmt.Println("长度ssss", len(a), "容量ssss:", cap(a))
		default:
			time.Sleep(3 * time.Second)

			return
		}
	}
}

func main() {
	// var b = make(chan int)
	go func() {
		for i := 0; i < 10; i++ {
			a <- i
			time.Sleep(1 * time.Microsecond)
		}
		// b <- 1
	}()
	// <-b
	go test()
	time.Sleep(2 * time.Second)

}
